1. Field of the Invention
The present invention relates, in general, to providing, servicing, and developing software applications, such as web-based applications including websites and corresponding services, in a distributed computer network, and, more particularly, to a service portal system that implements an application framework to control user access to application features or functions, allow features to be developed, updated, and readily plugged in to the application, and provide consistent presentation of feature content.
2. Relevant Background
Recently, it has become critical for many businesses to deliver networked applications and services to clients using wired or wireless devices typically linked to the Internet or other data communications network. Often, a server, such as a web server, is used by businesses and others to run an application, such as a website, to provide a service to its customers or clients. The service is generally made up of a number of features or functions that can be used or navigated by a client through a menu or otherwise. For example, the client or user can use a browser and Internet connection to access the application, manipulate data, and view content provided by the application features. Web-based applications allow a user to use their browser to quickly and remotely access secure business logic, such as e-commerce shopping cart systems, financial planning systems, insurance or mortgage quote systems, and the like.
To control access to the application and its features, a portal or service portal is often implemented to act as a point of entry to one or more applications and features of the applications. The service portal may be thought of as including both the hardware infrastructure, such as an application or web server, and a software framework necessary to implement functions including a user interface, serving content, managing data, and providing security (e.g., authenticating or logging in users).
While providing a useful mechanism for controlling and operating a networked application, existing service portals fail to meet the needs of e-commerce businesses. Specifically, existing service portal designs do not satisfactorily support application development. Generally, the underlying application architecture is fragmented and not built to any specific industry standards. This makes it very difficult for a developer to modify an existing feature or to add a new feature for an application without being forced to modify other portions of the application and/or service portal. Often, existing service portals are configured with the business model, such as a session-based shopping cart, of the application being tightly linked with presentation of content. Changes to the business model have to be performed with a full understanding of how the service portal or other mechanisms handle presenting data.
With developers being located in many geographic locations, successful coordination of developing new application features and implementing changes to application content is difficult to achieve. Troubleshooting and debugging of the service portal and applications it services presently requires integral knowledge of the entire system which is difficult when engineers may be responsible for coding while designers and others with less technical expertise may be responsible for maintaining a system. Presently, application servers are marketed by software companies as solving the problems involved with providing a web application but typically these application servers merely provide a platform for running applications not for building applications. Software or web engineers usually have to create (e.g., reinvent) a lot of code to provide an effective service with an application.
Hence, there remains a need for a tool for building web or network-based applications and, more specifically, for an improved apparatus (such as a service portal) and method of controlling access to applications and their features in a network setting that facilitates development of the applications and building or modifying application features. Preferably, such an apparatus and method would be created based on accepted industry standards for architectural and application design to facilitate modification of selected portions of the service provided by the application, such as modifying a method presenting content, changing a business model, altering content, or modifying a feature, without intimate knowledge of other portions of the system.